(0) Obligation:
Runtime Complexity TRS:
The TRS R consists of the following rules:
f(c(c(a, y, a), b(x, z), a)) → b(y, f(c(f(a), z, z)))
f(b(b(x, f(y)), z)) → c(z, x, f(b(b(f(a), y), y)))
c(b(a, a), b(y, z), x) → b(a, b(z, z))
Rewrite Strategy: INNERMOST
(1) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID) transformation)
Converted CpxTRS to CDT
(2) Obligation:
Complexity Dependency Tuples Problem
Rules:
f(c(c(a, z0, a), b(z1, z2), a)) → b(z0, f(c(f(a), z2, z2)))
f(b(b(z0, f(z1)), z2)) → c(z2, z0, f(b(b(f(a), z1), z1)))
c(b(a, a), b(z0, z1), z2) → b(a, b(z1, z1))
Tuples:
F(c(c(a, z0, a), b(z1, z2), a)) → c1(F(c(f(a), z2, z2)), C(f(a), z2, z2), F(a))
F(b(b(z0, f(z1)), z2)) → c2(C(z2, z0, f(b(b(f(a), z1), z1))), F(b(b(f(a), z1), z1)), F(a))
S tuples:
F(c(c(a, z0, a), b(z1, z2), a)) → c1(F(c(f(a), z2, z2)), C(f(a), z2, z2), F(a))
F(b(b(z0, f(z1)), z2)) → c2(C(z2, z0, f(b(b(f(a), z1), z1))), F(b(b(f(a), z1), z1)), F(a))
K tuples:none
Defined Rule Symbols:
f, c
Defined Pair Symbols:
F
Compound Symbols:
c1, c2
(3) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)
Removed 1 trailing nodes:
F(c(c(a, z0, a), b(z1, z2), a)) → c1(F(c(f(a), z2, z2)), C(f(a), z2, z2), F(a))
(4) Obligation:
Complexity Dependency Tuples Problem
Rules:
f(c(c(a, z0, a), b(z1, z2), a)) → b(z0, f(c(f(a), z2, z2)))
f(b(b(z0, f(z1)), z2)) → c(z2, z0, f(b(b(f(a), z1), z1)))
c(b(a, a), b(z0, z1), z2) → b(a, b(z1, z1))
Tuples:
F(b(b(z0, f(z1)), z2)) → c2(C(z2, z0, f(b(b(f(a), z1), z1))), F(b(b(f(a), z1), z1)), F(a))
S tuples:
F(b(b(z0, f(z1)), z2)) → c2(C(z2, z0, f(b(b(f(a), z1), z1))), F(b(b(f(a), z1), z1)), F(a))
K tuples:none
Defined Rule Symbols:
f, c
Defined Pair Symbols:
F
Compound Symbols:
c2
(5) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)
Use narrowing to replace
F(
b(
b(
z0,
f(
z1)),
z2)) →
c2(
C(
z2,
z0,
f(
b(
b(
f(
a),
z1),
z1))),
F(
b(
b(
f(
a),
z1),
z1)),
F(
a)) by
F(b(b(x0, f(f(z1))), x2)) → c2(C(x2, x0, c(f(z1), f(a), f(b(b(f(a), z1), z1)))), F(b(b(f(a), f(z1)), f(z1))), F(a))
F(b(b(x0, f(x1)), x2)) → c2
(6) Obligation:
Complexity Dependency Tuples Problem
Rules:
f(c(c(a, z0, a), b(z1, z2), a)) → b(z0, f(c(f(a), z2, z2)))
f(b(b(z0, f(z1)), z2)) → c(z2, z0, f(b(b(f(a), z1), z1)))
c(b(a, a), b(z0, z1), z2) → b(a, b(z1, z1))
Tuples:
F(b(b(x0, f(f(z1))), x2)) → c2(C(x2, x0, c(f(z1), f(a), f(b(b(f(a), z1), z1)))), F(b(b(f(a), f(z1)), f(z1))), F(a))
F(b(b(x0, f(x1)), x2)) → c2
S tuples:
F(b(b(x0, f(f(z1))), x2)) → c2(C(x2, x0, c(f(z1), f(a), f(b(b(f(a), z1), z1)))), F(b(b(f(a), f(z1)), f(z1))), F(a))
F(b(b(x0, f(x1)), x2)) → c2
K tuples:none
Defined Rule Symbols:
f, c
Defined Pair Symbols:
F
Compound Symbols:
c2, c2
(7) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)
Removed 1 trailing nodes:
F(b(b(x0, f(x1)), x2)) → c2
(8) Obligation:
Complexity Dependency Tuples Problem
Rules:
f(c(c(a, z0, a), b(z1, z2), a)) → b(z0, f(c(f(a), z2, z2)))
f(b(b(z0, f(z1)), z2)) → c(z2, z0, f(b(b(f(a), z1), z1)))
c(b(a, a), b(z0, z1), z2) → b(a, b(z1, z1))
Tuples:
F(b(b(x0, f(f(z1))), x2)) → c2(C(x2, x0, c(f(z1), f(a), f(b(b(f(a), z1), z1)))), F(b(b(f(a), f(z1)), f(z1))), F(a))
S tuples:
F(b(b(x0, f(f(z1))), x2)) → c2(C(x2, x0, c(f(z1), f(a), f(b(b(f(a), z1), z1)))), F(b(b(f(a), f(z1)), f(z1))), F(a))
K tuples:none
Defined Rule Symbols:
f, c
Defined Pair Symbols:
F
Compound Symbols:
c2
(9) CdtPolyRedPairProof (UPPER BOUND (ADD(O(n^1))) transformation)
Found a reduction pair which oriented the following tuples strictly. Hence they can be removed from S.
F(b(b(x0, f(f(z1))), x2)) → c2(C(x2, x0, c(f(z1), f(a), f(b(b(f(a), z1), z1)))), F(b(b(f(a), f(z1)), f(z1))), F(a))
We considered the (Usable) Rules:
f(b(b(z0, f(z1)), z2)) → c(z2, z0, f(b(b(f(a), z1), z1)))
c(b(a, a), b(z0, z1), z2) → b(a, b(z1, z1))
And the Tuples:
F(b(b(x0, f(f(z1))), x2)) → c2(C(x2, x0, c(f(z1), f(a), f(b(b(f(a), z1), z1)))), F(b(b(f(a), f(z1)), f(z1))), F(a))
The order we found is given by the following interpretation:
Polynomial interpretation :
POL(C(x1, x2, x3)) = [1] + x2
POL(F(x1)) = [1] + x1
POL(a) = 0
POL(b(x1, x2)) = [5] + x1 + x2
POL(c(x1, x2, x3)) = [3] + [3]x1
POL(c2(x1, x2, x3)) = x1 + x2 + x3
POL(f(x1)) = [1] + [5]x1
(10) Obligation:
Complexity Dependency Tuples Problem
Rules:
f(c(c(a, z0, a), b(z1, z2), a)) → b(z0, f(c(f(a), z2, z2)))
f(b(b(z0, f(z1)), z2)) → c(z2, z0, f(b(b(f(a), z1), z1)))
c(b(a, a), b(z0, z1), z2) → b(a, b(z1, z1))
Tuples:
F(b(b(x0, f(f(z1))), x2)) → c2(C(x2, x0, c(f(z1), f(a), f(b(b(f(a), z1), z1)))), F(b(b(f(a), f(z1)), f(z1))), F(a))
S tuples:none
K tuples:
F(b(b(x0, f(f(z1))), x2)) → c2(C(x2, x0, c(f(z1), f(a), f(b(b(f(a), z1), z1)))), F(b(b(f(a), f(z1)), f(z1))), F(a))
Defined Rule Symbols:
f, c
Defined Pair Symbols:
F
Compound Symbols:
c2
(11) SIsEmptyProof (EQUIVALENT transformation)
The set S is empty
(12) BOUNDS(O(1), O(1))